草庐IT

C++ 风格约定 : Parameter Names within Class Declaration

全部标签

c# - __c# 中的 fastcall 约定

考虑到:MicrosoftSpecificThe__fastcallcallingconventionspecifiesthatargumentstofunctionsaretobepassedinregisters,whenpossible.Thefollowinglistshowstheimplementationofthiscallingconvention.寄存器中的读/写时间比堆栈中的读/写时间快得多,我们在C#中是否有任何__fastcall等效项? 最佳答案 不是直接的,C#主要使用等同于MSVC++的__stdcal

c++ - 不同的编程语言和调用约定

根据维基:Differentprogramminglanguagesusedifferentcallingconventions,andsocandifferentplatforms(CPUarchitecture+operatingsystem).Thiscansometimescauseproblemswhencombiningmoduleswritteninmultiplelanguages那么我在Python中调用C/C++函数(从.so/.dll导出)时应该小心吗?如果是,我应该注意什么? 最佳答案 Python和C之间的

c++ - 好的风格——返回枚举还是整数?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion如果我有一个定义枚举的类,返回该枚举的成员函数应该声明为返回该枚举,还是返回一个int?例如:classFoo{public:enumStooge{larry,moe,curly};StoogeWhoToPoke();//OR:intWhoToPoke();???}我一直在声明返回枚举这样的方法,但不知道如果我将其声明为int是否是“更好的风格”或以某种方式对客户端更有用。

c++ - C++11 中的 C 风格回调

在一个C++11项目中,我使用了一个C风格的第三方库(在我的例子中是curl),它需要C风格的回调。为了实现这一点,我使用了“指针到成员”运算符:size_tc_callback_wrapper(char*ptr,size_tsize,size_tnmemb,void*userdata){MyClass*p=(MyClass*)userdata;return(p->*&MyClass::actualCallback)(ptr,size,nmemb,userdata);}voidMyclass::performSomething(){//registercallbackfunctionc

c++ - 将 C 风格的转换更改为 static_cast 总是安全的吗?

由于cppcheckcstyleCast样式警告,我正在尝试消除代码库中的所有C样式转换。将C风格的转换更改为static_cast总是安全的吗?安全,我的意思是,是否存在旧的C风格转换可以正常工作,但static_cast会引发错误或未定义行为的情况?type1a;type2b=(type2)a;//Cstylecasttype2b=static_cast(a);//Isthisalwaysavalidreplacementforabovecast? 最佳答案 C风格的转换通常是static_cast的组合或reinterpret

php - PHP 中的 C 风格变量初始化

PHP中有局部变量、私有(private)变量、静态变量和公共(public)变量吗?如果是这样,您能否提供每个示例以及它们的范围如何在类内外和内部函数中展示? 最佳答案 我不了解C++,但了解PHP的工作原理:对于函数作用域:输出是3-3-6函数内的代码只能使用global关键字访问函数外的变量。参见http://php.net/manual/en/language.variables.scope.php至于类:private_var.'-'.$this->public_var;//outputsclassvariables}pu

c++ - 一种使用不同风格的私有(private)成员的方法

classA{private:std::vectorflavor1std::vectorflavor2public:voiduseVectorOfX(std::vectorsomeflavor){...//samelogicforbothflavors}}现在我想从另一个类调用useVectorOfX(),根据需要为其提供flavor1或flavor2。我可以想到三种方法-方式一:使用Getter方法;但是classA通过Getter方法获取自己的数据似乎不自然。classB{public:A*a=newA();a->useVectorOfX(a->getFlavor1());}方式2

C++/Qt 编码风格——#define 应该放在哪里

我正尝试在Qt中构建一个突破性的游戏克隆。我需要弄清楚我的球与哪种类型的QGraphicsItem发生碰撞。例如,如果我的球与墙壁碰撞,球就会弹开,如果它与砖碰撞,它必须反弹并摧毁砖。要找出它是什么类型的QGraphicsItem,我认为最好的方法可能是覆盖QGraphicsItem::type()(如果这是,请告诉我方法不对!)。在brick.h的以下代码中,我将“Brick”的类型设置为3。现在,值3看起来很难跟踪。相反,我宁愿用“#define”来声明一些东西#include//shouldthis#definebehere?//#defineBRICK_SPRITE3class

c++ - Windows RT on ARM native 代码调用约定是什么?

我找不到任何关于VisualStudioC++使用的WindowsRTonARM调用约定的文档。微软是否使用ARM的AAPCS?如果Microsoft在ARM上使用适用于WindowsRT的AAPCS/EABI,它是否也使用ARM'sC++ABI(源自ItaniumC++ABI)?甚至可能是ARMexceptionhandlingABI?ARM上的WindowsRT使用的调用约定与其他(嵌入式)ARMWindows变体使用的调用约定是否不同?是否有可靠的方法通过预定义的编译器宏检测ARM上的WindowsRT?更新:添加了关于C++ABI的问题。 最佳答案

c++ - Ruby C++ 风格的迭代器

我想遍历不同的ruby​​数组(可能还有散列)。我真的不想维护一个索引来跟踪我在每个数组中的位置。不是因为我懒,而是我习惯了C++的迭代器使用方式,我认为这种方式更不容易出错。那么有没有办法在ruby​​中获取迭代器,就像我们在c++中所做的那样(这个例子并没有做太多,但它只是为了例子):std::set::iteratoriter1=set1.begin();std::set::iteratoriter2=set2.begin();while(iter1!=set1.end()&&iter2!=set2.end(){if(iter1->timestamp>iter2->timesta